Hosted or locally installed business applications create, monitor, and otherwise process requests, orders, quotations, and comparable business operations. Many business applications also integrate other operational aspects, such as manufacturing, inventory, planning, and purchasing operations. Moreover, businesses sometimes require interaction between suppliers and consumers of goods and services.
The business experts who operate the business processes that these business applications automate are often the most knowledgeable about what the requirements of such business applications are. However, they often have little or no programming experience and the available programming tools to build these types of applications typically require database and programming expertise. This puts such tools beyond the reach of many of these business experts.
Since the 1970s, server-based relational databases allow organizations to store business data in a reliable, secure way and share that data widely. In contrast, desktop databases, such as Microsoft Access, which have been around since the 1990s, allow business experts to create relational databases. However, data in desktop databases is not as secure, reliable or shareable as data in server-based databases. Further, the options for building applications that are available today are inflexible, incomplete, too narrow in scope, or so complex that they are as difficult to understand as the programming options they are supposed to replace. For example, point solutions (pre-packaged applications) are limited because of either lack of support for customization or limited customization facilities. Templates for programming tools (pre-packaged solutions that can be modified in the tool) are an alternative solution that has had some success but those also suffer from a number of drawbacks. The underlying programming tool may still require a user to have database and programming expertise. Additionally, it is often challenging to find a template suited to solve a business problem. A suitable template may often be complex and difficult for the user to understand and modify. Furthermore, templates tend to be “islands” of functionality that are hard to combine.
Another common approach is to provide a wizard that prompts the user to make a series of choices that leads to the generation of an application based on those choices. However, typically, wizards are not re-entrant (i.e., they support generating not editing) and do not use an extensible metadata scheme that allows for update and extension. This limits the usefulness of such wizards.
Today, web applications are popular due to the ubiquity of web browsers, and the convenience of using web browsers as a client, sometimes called a thin client. One reason for the popularity of web applications is the ability to update and maintain web applications without distributing and installing software on potentially thousands of client computers. Another key reason for their popularity is the inherent support for cross-platform compatibility. Yet another benefit to the use of web applications derives from the use of databases for storing business information. Database software allows business information to be stored so that the information is easily accessible by all authorized business users. This increases team collaboration and improves team efficiency and communication. Thus, business customers want to be able to create web applications that are powered by databases.
However, today it is really hard to create web applications powered by databases. For example, Microsoft Access Server 2010 allows a designer to create a web database. Microsoft Access Server 2010 relies on SharePoint to provide web pages, URLs, and the basic infrastructure in order for a user to have a web application powered by a database. However, SharePoint does not provide a fully relational or transacted database storage, which limits the types of applications that can be created and the data integrity of those applications. SQL Server Express may be used to create relational databases. However, SQL Server Express does not provide a way to publish web pages or return a URL to allow a user to share the web page with someone else. Thus, SQL Server Express only supports the creation of a database, but does not support web application creation. Moreover, non-technical business users do not have the skills or knowledge to create a web database.
Thus, prior tools do not facilitate the creation of “real” relational databases and lack support for functionality, including support for transactions that are atomic, consistent, isolated and durable.